home *** CD-ROM | disk | FTP | other *** search
- Path: uunet!zephyr.ens.tek.com!tekred!saab!billr
- From: billr@saab.CNA.TEK.COM (Bill Randle)
- Newsgroups: comp.sources.games
- Subject: v09i023: NetHack3 - display oriented dungeons & dragons (Ver. 3.0), Patch7w
- Message-ID: <5237@tekred.CNA.TEK.COM>
- Date: 24 Feb 90 01:06:22 GMT
- Sender: news@tekred.CNA.TEK.COM
- Lines: 1238
- Approved: billr@saab.CNA.TEK.COM
-
- Submitted-by: Izchak Miller <izchak@linc.cis.upenn.edu>
- Posting-number: Volume 9, Issue 23
- Archive-name: NetHack3/Patch7w
- Patch-To: NetHack3: Volume 7, Issue 56-93
-
-
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 23 (of 30)."
- # Contents: include/system.h src/monst.c2
- # Wrapped by billr@saab on Wed Feb 21 10:04:45 1990
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'include/system.h' -a "${1}" != "-c" ; then
- echo shar: Renaming existing file \"'include/system.h'\" to \"'include/system.h.orig'\"
- mv -f 'include/system.h' 'include/system.h.orig'
- fi
- echo shar: Extracting \"'include/system.h'\" \(7445 characters\)
- sed "s/^X//" >'include/system.h' <<'END_OF_FILE'
- X/* SCCS Id: @(#)system.h 3.0 88/10/10 */
- X/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
- X/* NetHack may be freely redistributed. See license for details. */
- X
- X#ifndef SYSTEM_H
- X#define SYSTEM_H
- X
- X#define E extern
- X
- X/* some old <sys/types.h> may not define off_t and size_t; if your system is
- X * one of these, define them by hand below
- X */
- X#if !defined(THINKC4) && !defined(AMIGA) && !defined(MACOS)
- X# include <sys/types.h>
- X#endif
- X
- X#if defined(TOS) && defined(__GNUC__) && !defined(_SIZE_T)
- X# define _SIZE_T
- X#endif
- X
- X#if defined(MSDOS) || ((defined(AMIGA) || defined(MACOS)) && !defined(THINKC4))
- X# ifndef _SIZE_T
- X# define _SIZE_T
- Xtypedef unsigned int size_t;
- X# endif
- X#endif
- X
- X#ifdef ULTRIX
- X/* The Ultrix v3.0 <sys/types.h> seems to be very wrong. */
- X# define time_t long
- X#endif
- X#if defined(ULTRIX) || defined(VMS)
- X# define off_t long
- X#endif
- X#if defined(AZTEC) || defined(THINKC4) || (defined(MSDOS) && defined(__TURBOC__))
- Xtypedef long off_t;
- X#endif
- X
- X
- X/* You may want to change this to fit your system, as this is almost
- X * impossible to get right automatically.
- X * This is the type of signal handling functions.
- X */
- X#if defined(__STDC__) || defined(ULTRIX)
- X /* also SVR3 and later, Sun4.0 and later */
- X# define SIG_RET_TYPE void (*)()
- X#else
- X /* BSD, SIII, SVR2 and earlier, Sun3.5 and earlier */
- X# define SIG_RET_TYPE int (*)()
- X#endif
- X
- X#if defined(BSD) || defined(ULTRIX) || defined(RANDOM)
- XE long random();
- XE void FDECL(srandom, (unsigned int));
- X#else
- XE long lrand48();
- XE void srand48();
- X#endif /* BSD || ULTRIX || RANDOM */
- X
- X#if !defined(BSD) || defined(ultrix)
- X /* real BSD wants all these to return int */
- X# ifndef MSDOS
- XE void FDECL(exit, (int));
- X# endif /* MSDOS */
- XE void FDECL(free, (genericptr_t));
- X# ifdef AMIGA
- XE int FDECL(perror, (const char *));
- X# else
- X# ifndef MACOS
- XE void FDECL(perror, (const char *));
- X# endif
- X# endif
- X#endif
- X#if defined(BSD) || defined(ULTRIX) || (defined(MACOS) && !defined(THINKC4))
- XE int qsort();
- X#else
- X# ifndef LATTICE
- XE void FDECL(qsort, (genericptr_t,size_t,size_t,int(*)(genericptr_t,genericptr_t)));
- X# endif
- X#endif
- X
- X#ifdef ULTRIX
- XE long FDECL(lseek, (int,off_t,int));
- X /* Ultrix 3.0 man page mistakenly says it returns an int. */
- XE int FDECL(write, (int,char *,int));
- X#else
- XE long FDECL(lseek, (int,long,int));
- XE int FDECL(write, (int,genericptr_t,unsigned));
- X#endif /* ULTRIX */
- XE int FDECL(unlink, (const char *));
- X
- X#ifdef MSDOS
- XE int FDECL(close, (int));
- XE int FDECL(read, (int,genericptr_t,unsigned int));
- XE int FDECL(open, (const char *,int,...));
- XE int FDECL(dup2, (int, int));
- XE int FDECL(setmode, (int,int));
- XE int FDECL(kbhit, (void));
- XE int FDECL(chdir, (char *));
- XE char *FDECL(getcwd, (char *,int));
- X#endif
- X
- X#ifdef TOS
- XE int FDECL(creat, (const char *, int));
- X#endif
- X
- X/* both old & new versions of Ultrix want these, but real BSD does not */
- X#ifdef ultrix
- XE void abort();
- XE void bcopy();
- X#endif
- X#ifdef MSDOS
- XE void FDECL(abort, (void));
- XE void FDECL(_exit, (int));
- XE int FDECL(system, (const char *));
- X#endif
- X#ifdef HPUX
- XE long FDECL(fork, (void));
- X#endif
- X
- X#ifdef SYSV
- XE char *memcpy();
- X#endif
- X#ifdef HPUX
- XE void *FDECL(memcpy, (char *,char *,int));
- XE int FDECL(memcmp, (char *,char *,int));
- XE void *FDECL(memset, (char*,int,int));
- X#endif
- X#ifdef MSDOS
- X# if defined(TOS) && defined(__GNUC__)
- XE int FDECL(memcmp, (const char *,const char *,size_t));
- XE char *FDECL(memcpy, (char *,const char *,size_t));
- XE char *FDECL(memset, (char*,int,size_t));
- X# else
- X# ifndef LATTICE
- X# ifdef MSC
- Xvoid * _CDECL memcpy(void *, const void *, size_t);
- Xvoid * _CDECL memset(void *, int, size_t);
- X# else
- XE int FDECL(memcmp, (char *,char *,unsigned int));
- XE char *FDECL(memcpy, (char *,char *,unsigned int));
- XE char *FDECL(memset, (char*,int,int));
- X# endif
- X# endif
- X# endif /* TOS */
- X#endif
- X
- X#if defined(BSD) && defined(ultrix) /* i.e., old versions of Ultrix */
- XE void sleep();
- X#endif
- X#if defined(ULTRIX) || defined(SYSV)
- XE unsigned sleep();
- X#endif
- X#if defined(HPUX)
- XE unsigned int FDECL(sleep, (unsigned int));
- X#endif
- X
- XE char *FDECL(getenv, (const char *));
- XE char *getlogin();
- X#ifdef HPUX
- XE long FDECL(getuid, (void));
- XE long FDECL(getgid, (void));
- XE long FDECL(getpid, (void));
- X#else
- XE int FDECL(getpid, (void));
- X#endif
- X
- X/*# string(s).h #*/
- X
- XE char *FDECL(strcpy, (char *,const char *));
- XE char *FDECL(strncpy, (char *,const char *,size_t));
- XE char *FDECL(strcat, (char *,const char *));
- XE char *FDECL(strncat, (char *,const char *,size_t));
- X
- X#if defined(SYSV) || defined(MSDOS) || defined(AMIGA) || defined(THINK_C) || defined(VMS) || defined(HPUX)
- XE char *FDECL(strchr, (const char *,int));
- XE char *FDECL(strrchr, (const char *,int));
- X#else /* BSD */
- XE char *FDECL(index, (const char *,int));
- XE char *FDECL(rindex, (const char *,int));
- X#endif
- X
- X
- XE int FDECL(strcmp, (const char *,const char *));
- XE int FDECL(strncmp, (const char *,const char *,size_t));
- X#ifdef MSDOS
- XE size_t FDECL(strlen, (const char *));
- X#else
- X# ifdef HPUX
- XE unsigned int FDECL(strlen, (char *));
- X# else
- X# ifdef THINKC4
- XE size_t FDECL(strlen, (char *));
- X# else
- XE int FDECL(strlen, (char *));
- X# endif /* THINKC4 */
- X# endif /* HPUX */
- X#endif /* MSDOS */
- X
- X/* Old varieties of BSD have char *sprintf().
- X * Newer varieties of BSD have int sprintf() but allow for the old char *.
- X * Several varieties of SYSV and PC systems also have int sprintf().
- X * If your system doesn't agree with this breakdown, you may want to change
- X * this declaration, especially if your machine treats the types differently.
- X */
- X#if (defined(BSD) || defined(ULTRIX)) && !defined(DGUX) && !defined(NeXT)
- X# define OLD_SPRINTF
- XE char *sprintf();
- X#else
- X# ifndef TOS /* problem with prototype mismatches with <stdio.h> */
- XE int FDECL(sprintf, (char *,const char *,...));
- X# endif
- X#endif
- X
- X#ifdef NEED_VARARGS
- X# if defined(USE_STDARG) || defined(USE_VARARGS)
- XE int FDECL(vsprintf, (char *, const char *, va_list));
- XE int FDECL(vprintf, (const char *, va_list));
- X# else
- X# define vprintf printf
- X# define vsprintf sprintf
- X# define vpline pline
- X# endif
- X#endif /* NEED_VARARGS */
- X
- X#define Sprintf (void) sprintf
- X#define Strcat (void) strcat
- X#define Strcpy (void) strcpy
- X
- X#if defined(MACOS) && defined(CUSTOM_IO)
- X# undef printf
- X# undef puts
- X# undef putchar
- X# undef putc
- X# define printf (void) mprintf
- X# define puts mputs
- X# define putchar mputc
- X# define putc mputc
- X# define Printf (void) mprintf
- X#else
- X# define Printf (void) printf
- X#endif
- X
- X#ifdef NEED_VARARGS
- X# define Vprintf (void) vprintf
- X# define Vsprintf (void) vsprintf
- X#endif
- X
- X#ifdef TOS
- XE int FDECL(tgetent, (const char *,const char *));
- XE int FDECL(tgetnum, (const char *));
- XE int FDECL(tgetflag, (const char *));
- XE char *FDECL(tgetstr, (const char *,char **));
- XE char *FDECL(tgoto, (const char *,int,int));
- XE void FDECL(tputs, (const char *,int,int (*)()));
- X#else
- XE int FDECL(tgetent, (char *,char *));
- XE int FDECL(tgetnum, (char *));
- XE int FDECL(tgetflag, (char *));
- XE char *FDECL(tgetstr, (char *,char **));
- XE char *FDECL(tgoto, (char *,int,int));
- XE void FDECL(tputs, (char *,int,int (*)()));
- X#endif
- X
- X#ifndef MACOS
- XE genericptr_t FDECL(malloc, (size_t));
- X#endif
- X
- X/* time functions */
- X
- X#ifndef MACOS
- X# ifndef LATTICE
- XE struct tm *FDECL(localtime, (const time_t *));
- X# endif
- X
- X# if defined(ULTRIX) || defined(SYSV) || defined(MSDOS)
- XE time_t FDECL(time, (time_t *));
- X# else
- XE long FDECL(time, (time_t *));
- X# endif /* ULTRIX */
- X#endif
- X
- X#ifdef MSDOS
- X# ifdef abs
- X# undef abs
- X# endif
- XE int FDECL(abs, (int));
- XE int FDECL(atoi, (const char *));
- X#endif
- X
- X#undef E
- X
- X#endif /* SYSTEM_H */
- END_OF_FILE
- if test 7445 -ne `wc -c <'include/system.h'`; then
- echo shar: \"'include/system.h'\" unpacked with wrong size!
- fi
- # end of 'include/system.h'
- if test -f 'src/monst.c2' -a "${1}" != "-c" ; then
- echo shar: Renaming existing file \"'src/monst.c2'\" to \"'src/monst.c2.orig'\"
- mv -f 'src/monst.c2' 'src/monst.c2.orig'
- fi
- echo shar: Extracting \"'src/monst.c2'\" \(46080 characters\)
- sed "s/^X//" >'src/monst.c2' <<'END_OF_FILE'
- X
- X/* horrible kludge alert:
- X * This is a compiler-specific kludge to allow the compilation of monst.o in
- X * two pieces, by defining first SPLITMON_1 and then SPLITMON_2. The
- X * resulting assembler files (monst1.s and monst2.s) are then run through
- X * sed to change local symbols, concatenated together, and assembled to
- X * produce monst.o. THIS ONLY WORKS WITH THE ATARI GCC, and should only
- X * be done if you don't have enough memory to compile monst.o the "normal"
- X * way. --ERS
- X */
- X
- X#ifndef SPLITMON_1
- X#ifdef SPLITMON_2
- Xstruct permonst _mons2[] = {
- X#endif
- X/* giant Humanoids */
- X { "ettin", S_GIANT, 10, 12, 3, 0, 0, (G_GENO | 1),
- X { { AT_WEAP, AD_PHYS, 2, 8 }, { AT_WEAP, AD_PHYS, 3, 6 },
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 50, 500, 0, MS_GRUNT, MZ_HUGE, M1_ANIMAL | M1_HUMANOID | M1_COLLECT,
- X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE, C(BROWN) },
- X { "giant", S_GIANT, 6, 6, 0, 0, 2, (G_GENO | G_NOGEN | 1),
- X { { AT_WEAP, AD_PHYS, 2, 10 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 75, 750, 0, MS_SILENT, MZ_HUGE, M1_HUMANOID | M1_COLLECT | M1_JEWELS,
- X M2_GIANT | M2_STRONG | M2_ROCKTHROW | M2_NASTY, C(RED) },
- X { "stone giant", S_GIANT, 6, 6, 0, 0, 2, (G_GENO | G_SGROUP | 1),
- X { { AT_WEAP, AD_PHYS, 2, 10 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 75, 750, 0, MS_SILENT, MZ_HUGE, M1_HUMANOID | M1_COLLECT | M1_JEWELS,
- X M2_GIANT | M2_STRONG | M2_ROCKTHROW | M2_NASTY, C(GRAY) },
- X { "hill giant", S_GIANT, 8, 10, 6, 0, -2, (G_GENO | G_SGROUP | 1),
- X { { AT_WEAP, AD_PHYS, 2, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 70, 700, 0, MS_SILENT, MZ_HUGE, M1_HUMANOID | M1_COLLECT | M1_JEWELS,
- X M2_GIANT | M2_STRONG | M2_ROCKTHROW | M2_NASTY, C(CYAN) },
- X { "fire giant", S_GIANT, 9, 12, 4, 5, 2, (G_GENO | G_SGROUP | 1),
- X { { AT_WEAP, AD_PHYS, 2, 10 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 75, 750, 0, MS_SILENT, MZ_HUGE,
- X M1_HUMANOID | M1_FIRE_RES | M1_COLLECT | M1_JEWELS,
- X M2_GIANT | M2_STRONG | M2_ROCKTHROW | M2_NASTY, C(YELLOW) },
- X { "frost giant", S_GIANT, 10, 12, 3, 10, -3, (G_GENO | G_SGROUP | 1),
- X { { AT_WEAP, AD_PHYS, 2, 12 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 75, 750, 0, MS_SILENT, MZ_HUGE,
- X M1_HUMANOID | M1_COLD_RES | M1_COLLECT | M1_JEWELS,
- X M2_GIANT | M2_STRONG | M2_ROCKTHROW | M2_NASTY, C(WHITE) },
- X { "titan", S_GIANT, 16, 18, -3, 70, 9, 1,
- X { { AT_WEAP, AD_PHYS, 2, 8 }, { AT_MAGC, AD_SPEL, 0, 0 },
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 90, 900, 0, MS_SILENT, MZ_HUGE, M1_FLY | M1_HUMANOID | M1_MAGIC |
- X M1_COLLECT, M2_STRONG | M2_ROCKTHROW | M2_NASTY, C(MAGENTA) },
- X { "minotaur", S_GIANT, 15, 15, 6, 0, 0, (G_GENO | G_NOGEN),
- X { { AT_CLAW, AD_PHYS, 3, 10 }, { AT_CLAW, AD_PHYS, 3, 10 },
- X { AT_BUTT, AD_PHYS, 2, 8}, NO_ATTK, NO_ATTK},
- X 70, 700, 0, MS_SILENT, MZ_LARGE, M1_ANIMAL | M1_HUMANOID,
- X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE, C(BROWN) },
- X { "owlbear", S_GIANT, 5, 12, 5, 0, 0, (G_GENO | 3),
- X { { AT_CLAW, AD_PHYS, 1, 6 }, { AT_CLAW, AD_PHYS, 1, 6 },
- X { AT_HUGS, AD_PHYS, 2, 8 }, NO_ATTK, NO_ATTK },
- X 70, 700, 0, MS_SILENT, MZ_LARGE, M1_ANIMAL | M1_HUMANOID,
- X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE, C(BROWN) },
- X/* Invisible stalker */
- X { "stalker", S_STALKER, 8, 12, 3, 0, 0, (G_GENO | 3),
- X { { AT_CLAW, AD_PHYS, 4, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 40, 400, 0, MS_SILENT, MZ_LARGE, M1_ANIMAL | M1_FLY | M1_SEE_INVIS,
- X M2_WANDER | M2_STALK | M2_HOSTILE | M2_STRONG, C(WHITE) },
- X/* Jabberwock */
- X { "jabberwock", S_JABBERWOCK, 15, 12, -2, 50, 0, (G_GENO | 1),
- X { { AT_BITE, AD_PHYS, 2, 10 }, { AT_BITE, AD_PHYS, 2, 10 },
- X { AT_CLAW, AD_PHYS, 2, 10 }, { AT_CLAW, AD_PHYS, 2, 10 }, NO_ATTK },
- X 60, 600, 0, MS_BURBLE, MZ_LARGE, M1_ANIMAL | M1_COLLECT | M1_FLY,
- X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE, C(BRIGHT|RED) },
- X/* Kops */
- X#ifdef KOPS
- X { "Keystone Kop", S_KOP, 1, 6, 7, 10, 9, (G_GENO | G_LGROUP | G_NOGEN),
- X { { AT_WEAP, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 20, 200, 0, MS_ARREST, MZ_HUMAN, M1_HUMANOID | M1_COLLECT,
- X M2_HUMAN | M2_WANDER | M2_HOSTILE, C(BLUE) },
- X { "Kop Sergeant", S_KOP, 2, 8, 6, 10, 10, (G_GENO | G_SGROUP | G_NOGEN),
- X { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 20, 200, 0, MS_ARREST, MZ_HUMAN, M1_HUMANOID | M1_COLLECT,
- X M2_HUMAN | M2_WANDER | M2_HOSTILE | M2_STRONG, C(BLUE) },
- X { "Kop Lieutenant", S_KOP, 3, 10, 5, 20, 11, (G_GENO | G_NOGEN),
- X { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 20, 200, 0, MS_ARREST, MZ_HUMAN, M1_HUMANOID | M1_COLLECT,
- X M2_HUMAN | M2_WANDER | M2_HOSTILE | M2_STRONG, C(CYAN) },
- X { "Kop Kaptain", S_KOP, 4, 12, 4, 20, 12, (G_GENO | G_NOGEN),
- X { { AT_WEAP, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 20, 200, 0, MS_ARREST, MZ_HUMAN, M1_HUMANOID | M1_COLLECT,
- X M2_HUMAN | M2_WANDER | M2_HOSTILE | M2_STRONG, C(HI_LORD) },
- X#endif
- X/* Liches */
- X { "lich", S_LICH, 11, 6, 0, 30, -9, (G_GENO | 1),
- X { { AT_TUCH, AD_COLD, 1, 10 }, { AT_MAGC, AD_SPEL, 0, 0 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 30, 100, 0, MS_MUMBLE, MZ_HUMAN,
- X M1_HUMANOID | M1_POIS | M1_COLD_RES | M1_REGEN | M1_MAGIC,
- X M2_UNDEAD | M2_HOSTILE, C(BROWN) },
- X { "demilich", S_LICH, 14, 9, -2, 60, -12, (G_GENO | 1),
- X { { AT_TUCH, AD_COLD, 3, 4 }, { AT_MAGC, AD_SPEL, 0, 0 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 30, 100, 0, MS_MUMBLE, MZ_HUMAN,
- X M1_HUMANOID | M1_POIS | M1_COLD_RES | M1_REGEN | M1_MAGIC,
- X M2_UNDEAD | M2_HOSTILE, C(RED) },
- X { "master lich", S_LICH, 17, 9, -4, 90, -15, (G_HELL | G_GENO | 1),
- X { { AT_TUCH, AD_COLD, 3, 6 }, { AT_MAGC, AD_SPEL, 0, 0 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 30, 100, 0, MS_MUMBLE, MZ_HUMAN,
- X M1_HUMANOID | M1_POIS | M1_FIRE_RES | M1_COLD_RES | M1_REGEN |
- X M1_MAGIC, M2_UNDEAD | M2_HOSTILE, C(HI_LORD) },
- X/* Mummies */
- X { "kobold mummy", S_MUMMY, 3, 8, 6, 20, -2, (G_GENO | G_NOCORPSE | 1),
- X { { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 10, 100, 0, MS_SILENT, MZ_SMALL,
- X M1_HUMANOID | M1_POIS, M2_UNDEAD | M2_HOSTILE, C(BROWN) },
- X { "gnome mummy", S_MUMMY, 4, 10, 6, 20, -3, (G_GENO | G_NOCORPSE | 1),
- X { { AT_CLAW, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 10, 100, 0, MS_SILENT, MZ_SMALL,
- X M1_HUMANOID | M1_POIS, M2_UNDEAD | M2_HOSTILE, C(RED) },
- X { "orc mummy", S_MUMMY, 5, 10, 5, 20, -4, (G_GENO | G_NOCORPSE | 1),
- X { { AT_CLAW, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 15, 150, 0, MS_SILENT, MZ_HUMAN,
- X M1_HUMANOID | M1_POIS | M1_GREEDY | M1_JEWELS,
- X M2_UNDEAD | M2_HOSTILE | M2_ORC, C(GRAY) },
- X { "elf mummy", S_MUMMY, 6, 12, 4, 30, -5, (G_GENO | G_NOCORPSE | 1),
- X { { AT_CLAW, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 35, 350, 0, MS_SILENT, MZ_HUMAN,
- X M1_HUMANOID | M1_POIS | M1_SLEE_RES,
- X M2_UNDEAD | M2_HOSTILE | M2_ELF, C(GREEN) },
- X { "human mummy", S_MUMMY, 6, 12, 4, 30, -5, (G_GENO | G_NOCORPSE | 1),
- X { { AT_CLAW, AD_PHYS, 2, 4 }, { AT_CLAW, AD_PHYS, 2, 4 },
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 40, 400, 0, MS_SILENT, MZ_HUMAN,
- X M1_HUMANOID | M1_POIS, M2_UNDEAD | M2_HOSTILE, C(GRAY) },
- X { "ettin mummy", S_MUMMY, 7, 12, 4, 30, -6, (G_GENO | G_NOCORPSE | 1),
- X { { AT_CLAW, AD_PHYS, 2, 6 }, { AT_CLAW, AD_PHYS, 2, 6 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 50, 500, 0, MS_SILENT, MZ_HUGE,
- X M1_HUMANOID | M1_POIS,
- X M2_UNDEAD | M2_HOSTILE | M2_STRONG, C(BLUE) },
- X { "giant mummy", S_MUMMY, 8, 14, 3, 30, -7, (G_GENO | G_NOCORPSE | 1),
- X { { AT_CLAW, AD_PHYS, 3, 4 }, { AT_CLAW, AD_PHYS, 3, 4 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 75, 750, 0, MS_SILENT, MZ_HUGE,
- X M1_HUMANOID | M1_POIS | M1_JEWELS,
- X M2_UNDEAD | M2_HOSTILE | M2_GIANT | M2_STRONG, C(CYAN) },
- X/* Nagas */
- X { "red naga hatchling", S_NAGA, 3, 10, 6, 0, 0, G_GENO,
- X { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 20, 100, 0, MS_MUMBLE, MZ_LARGE,
- X M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE | M1_FIRE_RES | M1_POIS_RES,
- X M2_STRONG, C(RED) },
- X { "black naga hatchling", S_NAGA, 3, 10, 6, 0, 0, G_GENO,
- X { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 20, 100, 0, MS_MUMBLE, MZ_LARGE,
- X M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE | M1_POIS_RES | M1_STON_RES,
- X M2_STRONG, C(BLACK) },
- X { "golden naga hatchling", S_NAGA, 3, 10, 6, 0, 0, G_GENO,
- X { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 20, 100, 0, MS_MUMBLE, MZ_LARGE,
- X M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE | M1_POIS_RES,
- X M2_STRONG, C(HI_GOLD) },
- X { "guardian naga hatchling", S_NAGA, 3, 10, 6, 0, 0, G_GENO,
- X { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 20, 100, 0, MS_MUMBLE, MZ_LARGE,
- X M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE | M1_POIS_RES,
- X M2_STRONG, C(GREEN) },
- X { "red naga", S_NAGA, 6, 12, 4, 0, -4, (G_GENO | 1),
- X { { AT_BITE, AD_PHYS, 2, 4 }, { AT_BREA, AD_FIRE, 2, 6 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 60, 400, 0, MS_MUMBLE, MZ_HUGE,
- X M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE | M1_POIS_RES | M1_FIRE_RES,
- X M2_STRONG | M2_EGGS, C(RED) },
- X { "black naga", S_NAGA, 8, 14, 2, 10, 4, (G_GENO | 1),
- X { { AT_BITE, AD_PHYS, 2, 6 }, { AT_SPIT, AD_ACID, 0, 0 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 60, 400, 0, MS_MUMBLE, MZ_HUGE,
- X M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE | M1_POIS_RES |
- X M1_ACID | M1_STON_RES,
- X M2_STRONG | M2_EGGS, C(BLACK) },
- X { "golden naga", S_NAGA, 10, 14, 2, 70, 5, (G_GENO | 1),
- X { { AT_BITE, AD_PHYS, 2, 6 }, { AT_MAGC, AD_SPEL, 4, 6 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 60, 400, 0, MS_MUMBLE, MZ_HUGE,
- X M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE | M1_POIS_RES,
- X M2_STRONG | M2_EGGS, C(HI_GOLD) },
- X { "guardian naga", S_NAGA, 12, 16, 0, 50, 7, (G_GENO | 1),
- X { { AT_BITE, AD_PLYS, 1, 6 }, { AT_HUGS, AD_PHYS, 2, 4 },
- X { AT_SPIT, AD_DRST, 1, 6 }, NO_ATTK, NO_ATTK },
- X 60, 400, 0, MS_MUMBLE, MZ_HUGE,
- X M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE | M1_POIS_RES | M1_POIS,
- X M2_STRONG | M2_EGGS, C(GREEN) },
- X/* Ogres */
- X { "ogre", S_OGRE, 5, 10, 5, 0, -3, (G_SGROUP | G_GENO | 1),
- X { { AT_WEAP, AD_PHYS, 2, 5 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 60, 500, 0, MS_GRUNT, MZ_LARGE,
- X M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT,
- X M2_STRONG, C(BROWN) },
- X { "ogre lord", S_OGRE, 7, 12, 3, 30, -5, (G_GENO | 2),
- X { { AT_WEAP, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 70, 700, 0, MS_GRUNT, MZ_LARGE,
- X M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT,
- X M2_STRONG | M2_LORD, C(RED) },
- X { "ogre king", S_OGRE, 7, 14, 4, 60, -7, (G_GENO | 2),
- X { { AT_WEAP, AD_PHYS, 3, 5 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 70, 750, 0, MS_GRUNT, MZ_LARGE,
- X M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT,
- X M2_STRONG | M2_PRINCE, C(HI_LORD) },
- X/* Puddings */
- X { "gray ooze", S_PUDDING, 3, 1, 8, 0, 0, (G_GENO | 2),
- X { { AT_BITE, AD_RUST, 2, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 50, 500, 0, MS_SILENT, MZ_MEDIUM,
- X M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_POIS_RES,
- X M2_HOSTILE | M2_OMNIVORE, C(GRAY) },
- X { "brown pudding", S_PUDDING, 5, 3, 8, 0, 0, (G_GENO | 1),
- X { { AT_BITE, AD_DCAY, 0, 0 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 50, 500, 0, MS_SILENT, MZ_MEDIUM,
- X M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_POIS_RES | M1_COLD_RES |
- X M1_ELEC_RES, M2_HOSTILE | M2_OMNIVORE, C(BROWN) },
- X { "black pudding", S_PUDDING, 10, 6, 6, 0, 0, (G_GENO | 1),
- X { { AT_BITE, AD_RUST, 3, 8 }, { AT_NONE, AD_RUST, 0, 0 },
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 50, 500, 0, MS_SILENT, MZ_LARGE,
- X M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_POIS_RES | M1_COLD_RES |
- X M1_ELEC_RES, M2_HOSTILE | M2_OMNIVORE, C(BLACK) },
- X/* Quantum Mechanics */
- X { "quantum mechanic", S_QUANTMECH, 7, 12, 3, 10, 0, (G_GENO | 3),
- X { { AT_CLAW, AD_TLPT, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 2, 20, 0, MS_HUMANOID, MZ_HUMAN,
- X M1_HUMANOID | M1_POIS | M1_TPORT, M2_HOSTILE, C(CYAN) },
- X/* Rust Monster */
- X { "rust monster", S_RUSTMONST, 5, 18, 2, 0, 0, (G_GENO | 2),
- X { { AT_TUCH, AD_RUST, 0, 0 }, { AT_TUCH, AD_RUST, 0, 0 },
- X { AT_NONE, AD_RUST, 0, 0 }, NO_ATTK, NO_ATTK },
- X 50, 500, 0, MS_SILENT, MZ_MEDIUM,
- X M1_SWIM | M1_ANIMAL | M1_NOHANDS, M2_HOSTILE | M2_METALLIVORE,
- X C(BROWN) },
- X/* Snakes */
- X { "garter snake", S_SNAKE, 1, 8, 8, 0, 0, (G_LGROUP | G_GENO | 1),
- X { { AT_BITE, AD_PHYS, 1, 2 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 5, 60, 0, MS_HISS, MZ_TINY,
- X M1_SWIM | M1_CONCEAL | M1_NOLIMBS | M1_ANIMAL | M1_SLITHY,
- X M2_CARNIVORE | M2_EGGS, C(GREEN) },
- X { "snake", S_SNAKE, 4, 15, 3, 0, 0, (G_GENO | 2),
- X { { AT_BITE, AD_DRST, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 10, 80, 0, MS_HISS, MZ_SMALL,
- X M1_SWIM | M1_CONCEAL | M1_NOLIMBS | M1_ANIMAL | M1_SLITHY |
- X M1_POIS | M1_POIS_RES,
- X M2_HOSTILE | M2_CARNIVORE | M2_EGGS, C(BROWN) },
- X { "water moccasin", S_SNAKE, 4, 15, 3, 0, 0,
- X (G_GENO | G_NOGEN | G_LGROUP),
- X { { AT_BITE, AD_DRST, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 10, 100, 0, MS_HISS, MZ_SMALL,
- X M1_SWIM | M1_CONCEAL | M1_NOLIMBS | M1_ANIMAL | M1_SLITHY |
- X M1_POIS | M1_POIS_RES,
- X M2_HOSTILE | M2_CARNIVORE | M2_EGGS, C(RED) },
- X { "pit viper", S_SNAKE, 6, 15, 2, 0, 0, (G_GENO | 1),
- X { { AT_BITE, AD_DRST, 1, 4 }, { AT_BITE, AD_DRST, 1, 4 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 5, 60, 0, MS_HISS, MZ_MEDIUM,
- X M1_SWIM | M1_CONCEAL | M1_NOLIMBS | M1_ANIMAL | M1_SLITHY |
- X M1_POIS | M1_POIS_RES,
- X M2_HOSTILE | M2_CARNIVORE | M2_EGGS, C(BLUE) },
- X { "cobra", S_SNAKE, 6, 18, 2, 0, 0, (G_GENO | 1),
- X { { AT_BITE, AD_DRST, 2, 4 }, { AT_SPIT, AD_BLND, 0, 0 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 15, 100, 0, MS_HISS, MZ_MEDIUM,
- X M1_SWIM | M1_CONCEAL | M1_NOLIMBS | M1_ANIMAL | M1_SLITHY |
- X M1_POIS | M1_POIS_RES,
- X M2_HOSTILE | M2_CARNIVORE | M2_EGGS, C(BLUE) },
- X { "python", S_SNAKE, 6, 3, 5, 0, 0, (G_GENO | 1),
- X { { AT_BITE, AD_DRST, 1, 4 }, { AT_HUGS, AD_WRAP, 2, 4 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 15, 100, 0, MS_HISS, MZ_LARGE,
- X M1_SWIM | M1_NOLIMBS | M1_ANIMAL | M1_SLITHY | M1_POIS | M1_POIS_RES,
- X M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_EGGS, C(MAGENTA) },
- X/* Trolls */
- X { "troll", S_TROLL, 7, 12, 4, 0, -3, (G_GENO | 2),
- X { { AT_CLAW, AD_PHYS, 4, 2 }, { AT_CLAW, AD_PHYS, 4, 2 },
- X { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK },
- X 40, 400, 0, MS_GRUNT, MZ_LARGE, M1_HUMANOID | M1_REGEN,
- X M2_STRONG | M2_STALK | M2_CARNIVORE | M2_HOSTILE, C(BROWN) },
- X { "ice troll", S_TROLL, 9, 10, 2, 20, -3, (G_GENO | 1),
- X { { AT_CLAW, AD_PHYS, 2, 6 }, { AT_CLAW, AD_COLD, 2, 6 },
- X { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK },
- X 40, 300, 0, MS_GRUNT, MZ_LARGE,
- X M1_HUMANOID | M1_COLD_RES | M1_REGEN,
- X M2_STRONG | M2_STALK | M2_CARNIVORE | M2_HOSTILE, C(WHITE) },
- X { "rock troll", S_TROLL, 9, 12, 0, 0, -3, (G_GENO | 1),
- X { { AT_CLAW, AD_PHYS, 2, 8 }, { AT_WEAP, AD_PHYS, 3, 6 },
- X { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK },
- X 40, 300, 0, MS_GRUNT, MZ_LARGE,
- X M1_HUMANOID | M1_REGEN | M1_COLLECT,
- X M2_STRONG | M2_STALK | M2_CARNIVORE | M2_HOSTILE, C(CYAN) },
- X { "water troll", S_TROLL, 11, 14, 4, 40, -3, (G_NOGEN | G_GENO),
- X { { AT_CLAW, AD_PHYS, 2, 8 }, { AT_CLAW, AD_PHYS, 2, 8 },
- X { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK },
- X 40, 400, 0, MS_GRUNT, MZ_LARGE,
- X M1_SWIM | M1_HUMANOID | M1_REGEN,
- X M2_STRONG | M2_STALK | M2_CARNIVORE | M2_HOSTILE, C(BLUE) },
- X#ifdef TOLKIEN
- X { "Olog-hai", S_TROLL, 13, 12, -4, 0, -7, (G_GENO | 1),
- X { { AT_CLAW, AD_PHYS, 2, 8 }, { AT_WEAP, AD_PHYS, 3, 6 },
- X { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK },
- X 40, 400, 0, MS_GRUNT, MZ_LARGE,
- X M1_HUMANOID | M1_REGEN | M1_COLLECT,
- X M2_STRONG | M2_STALK | M2_CARNIVORE | M2_HOSTILE, C(HI_LORD) },
- X#endif
- X/* Umber Hulk */
- X { "umber hulk", S_UMBER, 9, 6, 2, 25, 0, (G_GENO | 2),
- X { { AT_CLAW, AD_PHYS, 3, 4 }, { AT_CLAW, AD_PHYS, 3, 4 },
- X { AT_BITE, AD_PHYS, 2, 5 }, { AT_GAZE, AD_CONF, 0, 0 }, NO_ATTK },
- X 50, 500, 0, MS_SILENT, MZ_LARGE,
- X M1_TUNNEL, M2_STRONG | M2_CARNIVORE, C(BROWN) },
- X/* Vampires */
- X { "vampire", S_VAMPIRE, 10, 12, 1, 25, -8, (G_GENO | 1),
- X { { AT_CLAW, AD_PHYS, 1, 6 }, { AT_BITE, AD_DRLI, 1, 6 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 40, 400, 0, MS_VAMPIRE, MZ_HUMAN,
- X M1_FLY | M1_HUMANOID | M1_POIS | M1_REGEN,
- X M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_STRONG | M2_NASTY, C(RED) },
- X { "vampire lord", S_VAMPIRE, 12, 14, 0, 50, -9, (G_GENO | 1),
- X { { AT_CLAW, AD_PHYS, 1, 8 }, { AT_BITE, AD_DRLI, 1, 8 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 40, 400, 0, MS_VAMPIRE, MZ_HUMAN,
- X M1_FLY | M1_HUMANOID | M1_POIS | M1_REGEN,
- X M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_STRONG | M2_NASTY | M2_LORD,
- X C(BLUE) },
- X { "Vlad the Impaler", S_VAMPIRE, 14, 18, -3, 80, -10,
- X (G_NOGEN | G_NOCORPSE | G_UNIQ),
- X { { AT_WEAP, AD_PHYS, 1, 6 }, { AT_BITE, AD_DRLI, 1, 6 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 40, 400, 0, MS_VAMPIRE, MZ_HUMAN,
- X M1_NOPOLY | M1_FLY | M1_HUMANOID | M1_POIS | M1_REGEN,
- X M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_PNAME | M2_STRONG | M2_NASTY |
- X M2_PRINCE, C(HI_LORD) },
- X/* Wraiths */
- X { "barrow wight", S_WRAITH, 3, 12, 5, 5, -3, (G_GENO | G_NOCORPSE | 1),
- X { { AT_CLAW, AD_PHYS, 1, 4 }, { AT_MAGC, AD_SPEL, 0, 0 },
- X { AT_WEAP, AD_DRLI, 0, 0 }, NO_ATTK, NO_ATTK },
- X 30, 0, 0, MS_SILENT, MZ_HUMAN, M1_HUMANOID | M1_POIS_RES | M1_COLLECT,
- X M2_UNDEAD | M2_STALK | M2_HOSTILE, C(GRAY) },
- X { "wraith", S_WRAITH, 6, 12, 4, 15, -6, (G_GENO | 2),
- X { { AT_TUCH, AD_DRLI, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 30, 0, 0, MS_SILENT, MZ_HUMAN,
- X M1_FLY | M1_HUMANOID | M1_POIS_RES,
- X M2_UNDEAD | M2_STALK | M2_HOSTILE, C(BLACK) },
- X#ifdef TOLKIEN
- X { "Nazgul", S_WRAITH, 13, 12, 0, 25, -17, (G_GENO | G_NOCORPSE | 1),
- X { { AT_WEAP, AD_DRLI, 1, 4 }, { AT_BREA, AD_SLEE, 0, 0 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 30, 0, 0, MS_SILENT, MZ_HUMAN,
- X M1_HUMANOID | M1_POIS_RES | M1_COLLECT,
- X M2_UNDEAD | M2_STALK | M2_STRONG | M2_HOSTILE, C(HI_LORD) },
- X#endif
- X/* Xorn */
- X { "xorn", S_XORN, 8, 9,-2, 20, 0, (G_GENO | 1),
- X { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 },
- X { AT_CLAW, AD_PHYS, 1, 3 }, { AT_BITE, AD_PHYS, 4, 6 },
- X NO_ATTK }, 70, 700, 0, MS_SILENT, MZ_MEDIUM,
- X M1_WALLWALK | M1_THICK_HIDE | M1_FIRE_RES | M1_COLD_RES |
- X M1_STON_RES, M2_HOSTILE | M2_STRONG, C(BROWN) },
- X/* Yeti */
- X { "yeti", S_YETI, 5, 15, 6, 0, 0, (G_GENO | 2),
- X { { AT_CLAW, AD_PHYS, 1, 6 }, { AT_CLAW, AD_PHYS, 1, 6 },
- X { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK },
- X 70, 700, 0, MS_GROWL, MZ_LARGE, M1_ANIMAL | M1_HUMANOID | M1_COLD_RES,
- X M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(WHITE) },
- X/* Zombies */
- X { "kobold zombie", S_ZOMBIE, 0, 6, 10, 0, -2, (G_GENO | G_NOCORPSE | 1),
- X { { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 10, 100, 0, MS_SILENT, MZ_SMALL, M1_HUMANOID | M1_POIS |
- X M1_POIS_RES, M2_UNDEAD | M2_STALK | M2_HOSTILE, C(BROWN) },
- X { "gnome zombie", S_ZOMBIE, 1, 6, 10, 0, -2, (G_GENO | G_NOCORPSE | 1),
- X { { AT_CLAW, AD_PHYS, 1, 5 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 10, 100, 0, MS_SILENT, MZ_SMALL, M1_HUMANOID | M1_POIS |
- X M1_POIS_RES, M2_UNDEAD | M2_STALK | M2_HOSTILE, C(BROWN) },
- X { "orc zombie", S_ZOMBIE, 2, 6, 9, 0, -3,
- X (G_GENO | G_SGROUP | G_NOCORPSE | 1),
- X { { AT_CLAW, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 15, 150, 0, MS_SILENT, MZ_HUMAN,
- X M1_HUMANOID | M1_POIS_RES | M1_GREEDY |
- X M1_JEWELS, M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_ORC, C(GRAY) },
- X { "elf zombie", S_ZOMBIE, 3, 6, 9, 0, -3,
- X (G_GENO | G_SGROUP | G_NOCORPSE | 1),
- X { { AT_CLAW, AD_PHYS, 1, 7 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 35, 350, 0, MS_SILENT, MZ_HUMAN,
- X M1_HUMANOID | M1_POIS_RES | M1_SLEE_RES,
- X M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_ELF, C(GREEN) },
- X { "human zombie", S_ZOMBIE, 4, 6, 8, 0, -3,
- X (G_GENO | G_SGROUP | G_NOCORPSE | 1),
- X { { AT_CLAW, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 40, 400, 0, MS_SILENT, MZ_HUMAN,
- X M1_HUMANOID | M1_POIS_RES,
- X M2_UNDEAD | M2_STALK | M2_HOSTILE, C(HI_DOMESTIC) },
- X { "ettin zombie", S_ZOMBIE, 6, 8, 6, 0, -4, (G_GENO | G_NOCORPSE | 1),
- X { { AT_CLAW, AD_PHYS, 1, 10 }, { AT_CLAW, AD_PHYS, 1, 10 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 50, 500, 0, MS_SILENT, MZ_HUGE,
- X M1_HUMANOID | M1_POIS_RES,
- X M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_STRONG, C(BLUE) },
- X { "giant zombie", S_ZOMBIE, 8, 8, 6, 0, -4, (G_GENO | G_NOCORPSE | 1),
- X { { AT_CLAW, AD_PHYS, 2, 8 }, { AT_CLAW, AD_PHYS, 2, 8 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 75, 750, 0, MS_SILENT, MZ_HUGE,
- X M1_HUMANOID | M1_POIS_RES | M1_JEWELS,
- X M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_GIANT | M2_STRONG, C(CYAN) },
- X/* Golems */
- X#ifdef GOLEMS
- X { "straw golem", S_GOLEM, 3, 12, 10, 0, 0, (G_GENO | G_NOCORPSE | 1),
- X { { AT_CLAW, AD_PHYS, 1, 2 }, { AT_CLAW, AD_PHYS, 1, 2 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 10, 0, 0, MS_SILENT, MZ_LARGE,
- X M1_HUMANOID | M1_POIS_RES, M2_HOSTILE, C(YELLOW) },
- X { "rope golem", S_GOLEM, 4, 9, 8, 0, 0, (G_GENO | G_NOCORPSE | 1),
- X { { AT_CLAW, AD_PHYS, 1, 6 }, { AT_HUGS, AD_PHYS, 6, 1 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 20, 0, 0, MS_SILENT, MZ_LARGE,
- X M1_HUMANOID | M1_POIS_RES, M2_HOSTILE, C(BROWN) },
- X { "leather golem", S_GOLEM, 6, 6, 6, 0, 0, (G_GENO | G_NOCORPSE | 1),
- X { { AT_CLAW, AD_PHYS, 1, 6 }, { AT_CLAW, AD_PHYS, 1, 6 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 40, 0, 0, MS_SILENT, MZ_LARGE,
- X M1_HUMANOID | M1_POIS_RES, M2_HOSTILE, C(HI_LEATHER) },
- X { "wood golem", S_GOLEM, 7, 3, 4, 0, 0, (G_GENO | G_NOCORPSE | 1),
- X { { AT_CLAW, AD_PHYS, 3, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 50, 0, 0, MS_SILENT, MZ_LARGE,
- X M1_HUMANOID | M1_POIS_RES | M1_THICK_HIDE, M2_HOSTILE, C(HI_WOOD) },
- X { "flesh golem", S_GOLEM, 9, 8, 9, 30, 0, (G_GENO | 1),
- X { { AT_CLAW, AD_PHYS, 2, 8 }, { AT_CLAW, AD_PHYS, 2, 8 },
- X NO_ATTK, NO_ATTK, NO_ATTK},
- X 60, 600, 0, MS_SILENT, MZ_LARGE,
- X M1_HUMANOID | M1_POIS_RES | M1_FIRE_RES | M1_COLD_RES | M1_ELEC_RES,
- X M2_HOSTILE | M2_STRONG, C(RED) },
- X { "clay golem", S_GOLEM, 11, 7, 7, 40, 0, (G_GENO | G_NOCORPSE | 1),
- X { { AT_CLAW, AD_PHYS, 3, 10 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 75, 0, 0, MS_SILENT, MZ_LARGE,
- X M1_HUMANOID | M1_POIS_RES | M1_THICK_HIDE,
- X M2_HOSTILE | M2_STRONG, C(BROWN) },
- X { "stone golem", S_GOLEM, 14, 6, 5, 50, 0, (G_GENO | G_NOCORPSE | 1),
- X { { AT_CLAW, AD_PHYS, 3, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 90, 0, 0, MS_SILENT, MZ_LARGE,
- X M1_HUMANOID | M1_POIS_RES | M1_THICK_HIDE | M1_STON_RES,
- X M2_HOSTILE | M2_STRONG, C(GRAY) },
- X { "iron golem", S_GOLEM, 18, 6, 3, 60, 0, (G_GENO | G_NOCORPSE | 1),
- X { { AT_WEAP, AD_PHYS, 4, 10 }, { AT_BREA, AD_DRST, 4, 6 },
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 100, 0, 0, MS_SILENT, MZ_LARGE,
- X M1_HUMANOID | M1_THICK_HIDE | M1_POIS | M1_FIRE_RES | M1_COLD_RES |
- X M1_ELEC_RES | M1_COLLECT,
- X M2_HOSTILE | M2_STRONG, C(HI_METAL) },
- X#endif /* GOLEMS */
- X/* Humans */
- X { "human", S_HUMAN, 0, 12, 10, 0, 0, G_NOGEN, /* for corpses */
- X { {AT_WEAP, AD_PHYS, 1, 6}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 45, 400, 0, MS_HUMANOID, MZ_HUMAN,
- X M1_NOPOLY | M1_HUMANOID | M1_COLLECT,
- X M2_HUMAN | M2_PEACEFUL | M2_STRONG, C(HI_DOMESTIC) },
- X { "wererat", S_HUMAN, 2, 12, 7, 10, -7, 1,
- X { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 45, 400, 0, MS_SILENT, MZ_HUMAN,
- X M1_NOPOLY | M1_HUMANOID | M1_POIS | M1_REGEN | M1_COLLECT,
- X M2_WERE | M2_HOSTILE | M2_HUMAN, C(BROWN) },
- X { "werejackal", S_HUMAN, 2, 12, 7, 10, -7, 1,
- X { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 45, 400, 0, MS_BARK, MZ_HUMAN,
- X M1_NOPOLY | M1_HUMANOID | M1_POIS | M1_REGEN | M1_COLLECT,
- X M2_WERE | M2_HOSTILE | M2_HUMAN, C(RED) },
- X { "werewolf", S_HUMAN, 5, 12, 6, 20, -7, 1,
- X { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 45, 400, 0, MS_BARK, MZ_HUMAN,
- X M1_NOPOLY | M1_HUMANOID | M1_POIS | M1_REGEN | M1_COLLECT,
- X M2_WERE | M2_HOSTILE | M2_HUMAN, C(ORANGE_COLORED) },
- X#ifdef TOLKIEN
- X { "Woodland-elf", S_HUMAN, 4, 12, 5, 10, 5, (G_GENO | G_SGROUP | 2),
- X { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 35, 350, 0, MS_HUMANOID, MZ_HUMAN, M1_HUMANOID |
- X M1_COLLECT | M1_SLEE_RES, M2_ELF, C(GREEN) },
- X { "Green-elf", S_HUMAN, 5, 12, 5, 10, 6, (G_GENO | G_SGROUP | 2),
- X { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 35, 350, 0, MS_HUMANOID, MZ_HUMAN, M1_HUMANOID |
- X M1_COLLECT | M1_SLEE_RES, M2_ELF, C(GREEN+BRIGHT) },
- X { "Grey-elf", S_HUMAN, 6, 12, 5, 10, 7, (G_GENO | G_SGROUP | 2),
- X { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 35, 350, 0, MS_HUMANOID, MZ_HUMAN, M1_HUMANOID |
- X M1_COLLECT | M1_SLEE_RES, M2_ELF, C(GRAY) },
- X#endif
- X { "elf-lord", S_HUMAN, 8, 12, 5, 20, 9, (G_GENO | G_SGROUP | 2),
- X { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4 },
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 35, 350, 0, MS_HUMANOID, MZ_HUMAN, M1_HUMANOID |
- X M1_COLLECT | M1_SLEE_RES, M2_ELF | M2_STRONG | M2_LORD, C(BLUE+BRIGHT) },
- X { "Elvenking", S_HUMAN, 9, 12, 5, 25, 10, (G_GENO | 1),
- X { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4},
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 35, 350, 0, MS_HUMANOID, MZ_HUMAN,
- X M1_HUMANOID | M1_COLLECT | M1_SLEE_RES,
- X M2_ELF | M2_STRONG | M2_PRINCE, C(HI_LORD) },
- X { "nurse", S_HUMAN, 11, 6, 0, 0, 0, (G_GENO | 3),
- X { { AT_CLAW, AD_HEAL, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 45, 400, 0, MS_NURSE, MZ_HUMAN, M1_NOPOLY | M1_HUMANOID | M1_POIS_RES,
- X M2_HUMAN | M2_HOSTILE, C(HI_DOMESTIC) },
- X { "shopkeeper", S_HUMAN, 12, 18, 0, 50, 0, G_NOGEN,
- X { { AT_WEAP, AD_PHYS, 4, 4 }, { AT_WEAP, AD_PHYS, 4, 4 }, NO_ATTK,
- X NO_ATTK, NO_ATTK }, 45, 400, sizeof(struct eshk), MS_SELL, MZ_HUMAN,
- X M1_NOPOLY | M1_HUMANOID | M1_MAGIC | M1_COLLECT,
- X M2_HUMAN | M2_PEACEFUL | M2_STRONG, C(HI_DOMESTIC) },
- X { "guard", S_HUMAN, 12, 12, -1, 40, 10, G_NOGEN,
- X { { AT_WEAP, AD_PHYS, 4, 10 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 45, 400, sizeof(struct egd), MS_GUARD, MZ_HUMAN,
- X M1_NOPOLY | M1_HUMANOID | M1_COLLECT,
- X M2_HUMAN | M2_MERC | M2_PEACEFUL | M2_STRONG, C(BLUE) },
- X#ifdef ORACLE
- X { "oracle", S_HUMAN, 12, 0, 0, 50, 0, G_NOGEN | G_UNIQ,
- X { { AT_NONE, AD_MAGM, 0, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 45, 400, 0, MS_ORACLE, MZ_HUMAN, M1_NOPOLY | M1_HUMANOID,
- X M2_HUMAN | M2_PEACEFUL | M2_FEM, C(HI_ZAP) },
- X#endif
- X#if defined(ALTARS) && defined(THEOLOGY)
- X { "temple priest", S_HUMAN, 12, 12, 0, 50, 1, G_NOGEN,
- X { { AT_WEAP, AD_PHYS, 4, 10 }, { AT_KICK, AD_PHYS, 1, 4 },
- X { AT_MAGC, AD_CLRC, 0, 0 }, NO_ATTK, NO_ATTK },
- X 45, 400, sizeof(struct epri), MS_PRIEST, MZ_HUMAN,
- X M1_NOPOLY | M1_HUMANOID | M1_ELEC_RES | M1_COLLECT,
- X M2_HUMAN | M2_PEACEFUL, C(WHITE) },
- X { "temple priestess", S_HUMAN, 12, 12, 0, 50, 1, G_NOGEN,
- X { { AT_WEAP, AD_PHYS, 4, 10 }, { AT_KICK, AD_PHYS, 1, 4 },
- X { AT_MAGC, AD_CLRC, 0, 0 }, NO_ATTK, NO_ATTK },
- X 45, 400, sizeof(struct epri), MS_PRIEST, MZ_HUMAN,
- X M1_NOPOLY | M1_HUMANOID | M1_ELEC_RES | M1_COLLECT,
- X M2_HUMAN | M2_PEACEFUL | M2_FEM, C(WHITE) },
- X#endif
- X#ifdef ARMY
- X { "unarmored soldier", S_HUMAN, 6, 4, 10, 0, -2, G_NOGEN,
- X { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 45, 400, 0, MS_SOLDIER, MZ_HUMAN,
- X M1_NOPOLY | M1_HUMANOID | M1_COLLECT,
- X M2_HUMAN | M2_MERC | M2_STALK | M2_HOSTILE | M2_STRONG, C(BROWN) },
- X { "soldier", S_HUMAN, 6, 4, 3, 0, -2, (G_SGROUP | G_GENO | 1),
- X { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 45, 400, 0, MS_SOLDIER, MZ_HUMAN,
- X M1_NOPOLY | M1_HUMANOID | M1_COLLECT,
- X M2_HUMAN | M2_MERC | M2_STALK | M2_HOSTILE | M2_STRONG, C(GRAY) },
- X { "sergeant", S_HUMAN, 8, 4, 0, 5, -3, (G_SGROUP | G_GENO | 1),
- X { { AT_WEAP, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 45, 400, 0, MS_SOLDIER, MZ_HUMAN,
- X M1_NOPOLY | M1_HUMANOID | M1_COLLECT,
- X M2_HUMAN | M2_MERC | M2_STALK | M2_HOSTILE | M2_STRONG, C(RED) },
- X { "lieutenant", S_HUMAN, 10, 4, -2, 15, -4, (G_GENO | 1),
- X { { AT_WEAP, AD_PHYS, 3, 4 }, { AT_WEAP, AD_PHYS, 3, 4 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 45, 400, 0, MS_SOLDIER, MZ_HUMAN,
- X M1_NOPOLY | M1_HUMANOID | M1_COLLECT,
- X M2_HUMAN | M2_MERC | M2_STALK | M2_HOSTILE | M2_STRONG, C(GREEN) },
- X { "captain", S_HUMAN, 12, 4, -3, 15, -5, (G_GENO | 1),
- X { { AT_WEAP, AD_PHYS, 4, 4 }, { AT_WEAP, AD_PHYS, 4, 4 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 45, 400, 0, MS_SOLDIER, MZ_HUMAN,
- X M1_NOPOLY | M1_HUMANOID | M1_COLLECT,
- X M2_HUMAN | M2_MERC | M2_STALK | M2_HOSTILE | M2_STRONG, C(BLUE) },
- X#endif
- X#ifdef MEDUSA
- X { "Medusa", S_HUMAN, 20, 12, 2, 50, -15, G_NOGEN | G_UNIQ,
- X { { AT_CLAW, AD_PHYS, 1, 8 }, { AT_GAZE, AD_STON, 0, 0 },
- X { AT_BITE, AD_DRST, 1, 6 }, { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK },
- X 45, 400, 0, MS_HISS, MZ_LARGE,
- X M1_NOPOLY | M1_HUMANOID | M1_SLITHY | M1_POIS | M1_POIS_RES |
- X M1_STON_RES, M2_HOSTILE | M2_STRONG | M2_PNAME | M2_FEM,
- X C(BRIGHT|GREEN) },
- X#endif
- X { "Wizard of Yendor", S_HUMAN, 30, 12, -8, 100, -20, G_NOGEN,
- X { { AT_CLAW, AD_SAMU, 2, 12 }, { AT_MAGC, AD_SPEL, 0, 0 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 45, 400, 0, MS_CUSS, MZ_HUMAN,
- X M1_NOPOLY | M1_FLY | M1_HUMANOID | M1_POIS_RES | M1_FIRE_RES |
- X M1_REGEN | M1_SEE_INVIS | M1_TPORT | M1_TPORT_CONTROL | M1_MAGIC,
- X M2_HUMAN | M2_PNAME | M2_HOSTILE | M2_STRONG | M2_NASTY | M2_PRINCE,
- X C(HI_LORD) },
- X#ifdef CHARON
- X { "Charon", S_HUMAN, 76, 18, -5, 120, 0,
- X (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
- X { { AT_WEAP, AD_PHYS, 1, 8 }, { AT_TUCH, AD_PLYS, 1, 8 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 45, 400, 0, MS_FERRY, MZ_HUMAN,
- X M1_NOPOLY | M1_SEE_INVIS | M1_HUMANOID | M1_POIS_RES | M1_FIRE_RES |
- X M1_GREEDY | M1_COLLECT, M2_HUMAN | M2_PEACEFUL | M2_PNAME,
- X C(WHITE) },
- X#endif
- X/* Ghost */
- X { "ghost", S_GHOST, 10, 3, -5, 50, -5, (G_NOCORPSE | G_NOGEN),
- X { { AT_TUCH, AD_PHYS, 1, 1 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 45, 0, PL_NSIZ, MS_SILENT, MZ_HUMAN,
- X M1_NOPOLY | M1_FLY | M1_WALLWALK | M1_HUMANOID | M1_POIS_RES,
- X M2_UNDEAD | M2_STALK | M2_HOSTILE, C(GRAY) },
- X/* (major) Demons */
- X { "water demon", S_DEMON, 8, 12,-4, 30, -7, (G_NOCORPSE | G_NOGEN),
- X { { AT_WEAP, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 },
- X { AT_BITE, AD_PHYS, 1, 3 }, NO_ATTK, NO_ATTK },
- X 45, 450, 0, MS_SILENT, MZ_HUMAN,
- X M1_SWIM | M1_HUMANOID | M1_POIS | M1_FIRE_RES | M1_COLLECT,
- X M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY, C(BLUE) },
- X#ifndef INFERNO /* generic type */
- X { "demon", S_DEMON, 10, 12,-4, 30, -7, (G_NOCORPSE | 3),
- X { { AT_WEAP, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
- X { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK },
- X 45, 450, 0, MS_CUSS, MZ_HUMAN,
- X M1_HUMANOID | M1_POIS | M1_FIRE_RES | M1_COLLECT,
- X M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY, C(RED) },
- X#else /* used in hell for bigger, badder demons! */
- X /* standard demons & devils */
- X { "horned devil", S_DEMON, 6, 9, -5, 50, 11, (G_HELL | G_NOCORPSE | 2),
- X { { AT_WEAP, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
- X { AT_BITE, AD_PHYS, 2, 3 }, { AT_STNG, AD_PHYS, 1, 3 }, NO_ATTK },
- X 45, 450, 0, MS_SILENT, MZ_HUMAN,
- X M1_POIS | M1_FIRE_RES | M1_THICK_HIDE,
- X M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY, C(BROWN) },
- X#ifdef SEDUCE
- X { "succubus", S_DEMON, 6, 12, 0, 70, -9, (G_NOCORPSE | 1),
- X { { AT_BITE, AD_SSEX, 0, 0 }, { AT_CLAW, AD_PHYS, 1, 3 },
- X { AT_CLAW, AD_PHYS, 1, 3 }, NO_ATTK },
- X 45, 450, 0, MS_SEDUCE, MZ_HUMAN,
- X M1_HUMANOID | M1_FLY | M1_POIS | M1_FIRE_RES,
- X M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY | M2_FEM, C(GRAY) },
- X { "incubus", S_DEMON, 6, 12, 0, 70, -9, (G_NOCORPSE | 1),
- X { { AT_BITE, AD_SSEX, 0, 0 }, { AT_CLAW, AD_PHYS, 1, 3 },
- X { AT_CLAW, AD_PHYS, 1, 3 }, NO_ATTK },
- X 45, 450, 0, MS_SEDUCE, MZ_HUMAN,
- X M1_HUMANOID | M1_FLY | M1_POIS | M1_FIRE_RES,
- X M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY, C(GRAY) },
- X#else
- X { "succubus", S_DEMON, 6, 12, 0, 70, -9, (G_NOCORPSE | 1),
- X { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 },
- X { AT_BITE, AD_DRLI, 2, 6 }, NO_ATTK },
- X 45, 450, 0, MS_SEDUCE, MZ_HUMAN,
- X M1_HUMANOID | M1_FLY | M1_POIS | M1_FIRE_RES,
- X M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY | M2_FEM, C(GRAY) },
- X { "incubus", S_DEMON, 6, 12, 0, 70, -9, (G_NOCORPSE | 1),
- X { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 },
- X { AT_BITE, AD_DRLI, 2, 6 }, NO_ATTK },
- X 45, 450, 0, MS_SEDUCE, MZ_HUMAN,
- X M1_HUMANOID | M1_FLY | M1_POIS | M1_FIRE_RES,
- X M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY, C(GRAY) },
- X#endif
- X { "erinyes", S_DEMON, 7, 12, 2, 30, 10,
- X (G_HELL | G_NOCORPSE | G_SGROUP | 2),
- X { { AT_WEAP, AD_DRST, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 45, 450, 0, MS_SILENT, MZ_HUMAN,
- X M1_HUMANOID | M1_POIS | M1_FIRE_RES | M1_COLLECT,
- X M2_DEMON | M2_STALK | M2_HOSTILE | M2_STRONG | M2_NASTY | M2_FEM,
- X C(RED) },
- X { "marilith", S_DEMON, 7, 12, -6, 80, -12, (G_HELL | G_NOCORPSE | 1),
- X { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4 },
- X { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4 },
- X { AT_WEAP, AD_PHYS, 2, 4 }, }, 45, 450, 0, MS_CUSS, MZ_LARGE,
- X M1_HUMANOID | M1_SEE_INVIS | M1_POIS | M1_FIRE_RES | M1_COLLECT |
- X M1_SLITHY,
- X M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY | M2_FEM, C(RED) },
- X { "barbed devil", S_DEMON, 8, 12, 0, 35, 8,
- X (G_HELL | G_NOCORPSE | G_SGROUP | 2),
- X { { AT_CLAW, AD_PHYS, 2, 4 }, { AT_CLAW, AD_PHYS, 2, 4 },
- X { AT_STNG, AD_PHYS, 3, 4 }, NO_ATTK, NO_ATTK },
- X 45, 450, 0, MS_SILENT, MZ_HUMAN,
- X M1_POIS | M1_FIRE_RES | M1_THICK_HIDE,
- X M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY, C(RED) },
- X { "vrock", S_DEMON, 8, 12, 0, 50, -9,
- X (G_HELL | G_NOCORPSE | G_SGROUP | 2),
- X { { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
- X { AT_CLAW, AD_PHYS, 1, 8 }, { AT_CLAW, AD_PHYS, 1, 8 },
- X { AT_BITE, AD_PHYS, 1, 6 }, },
- X 45, 450, 0, MS_SILENT, MZ_LARGE, M1_POIS | M1_FIRE_RES,
- X M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY, C(RED) },
- X { "hezrou", S_DEMON, 9, 6, -2, 55, -10,
- X (G_HELL | G_NOCORPSE | G_SGROUP | 2),
- X { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 },
- X { AT_BITE, AD_PHYS, 4, 4 }, NO_ATTK, NO_ATTK }, 45, 450, 0,
- X MS_SILENT, MZ_LARGE, M1_HUMANOID | M1_POIS | M1_FIRE_RES,
- X M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY, C(RED) },
- X { "bone devil", S_DEMON, 9, 15, -1, 40, -9,
- X (G_HELL | G_NOCORPSE | G_SGROUP | 2),
- X { { AT_WEAP, AD_PHYS, 3, 4 }, { AT_STNG, AD_DRST, 2, 4 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 45, 450, 0, MS_SILENT, MZ_LARGE,
- X M1_POIS | M1_FIRE_RES | M1_COLLECT,
- X M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY, C(GRAY) },
- X { "nalfeshnee", S_DEMON, 11, 9, -1, 65, -11, (G_HELL | G_NOCORPSE | 1),
- X { { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
- X { AT_BITE, AD_PHYS, 2, 4 }, { AT_MAGC, AD_SPEL, 0, 0 }, NO_ATTK },
- X 45, 450, 0, MS_SILENT, MZ_LARGE,
- X M1_HUMANOID | M1_POIS | M1_FIRE_RES,
- X M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY, C(RED) },
- X { "ice devil", S_DEMON, 11, 6, -4, 55, -12, (G_HELL | G_NOCORPSE | 2),
- X { { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
- X { AT_BITE, AD_PHYS, 2, 4 }, { AT_STNG, AD_COLD, 3, 4 }, NO_ATTK },
- X 45, 450, 0, MS_SILENT, MZ_LARGE,
- X M1_SEE_INVIS | M1_POIS | M1_FIRE_RES | M1_COLD_RES,
- X M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY, C(WHITE) },
- X { "pit fiend", S_DEMON, 13, 6, -3, 65, -13, (G_HELL | G_NOCORPSE | 2),
- X { { AT_WEAP, AD_PHYS, 4, 2 }, { AT_WEAP, AD_PHYS, 4, 2 },
- X { AT_HUGS, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK },
- X 45, 450, 0, MS_GROWL, MZ_LARGE,
- X M1_SEE_INVIS | M1_POIS | M1_FIRE_RES | M1_COLLECT,
- X M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY, C(RED) },
- X { "balrog", S_DEMON, 16, 5, -2, 75, -14, (G_HELL | G_NOCORPSE | 1),
- X { { AT_WEAP, AD_PHYS, 8, 4 }, { AT_WEAP, AD_PHYS, 4, 6 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 45, 450, 0, MS_SILENT, MZ_LARGE,
- X M1_FLY | M1_SEE_INVIS | M1_COLLECT | M1_POIS | M1_FIRE_RES,
- X M2_DEMON | M2_STALK | M2_HOSTILE | M2_STRONG | M2_NASTY, C(RED) },
- X /* Named demon lords & princes plus Arch-Devils */
- X { "Juiblex", S_DEMON, 50, 3, -7, 65, -15,
- X (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
- X { { AT_ENGL, AD_DISE, 4, 10 }, { AT_SPIT, AD_ACID, 3, 6 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 50, 250, 0, MS_GURGLE, MZ_LARGE,
- X M1_NOPOLY | M1_FLY | M1_SEE_INVIS | M1_ACID | M1_POIS | M1_FIRE_RES |
- X M1_AMORPHOUS,
- X M2_DEMON | M2_STALK | M2_HOSTILE | M2_PNAME | M2_NASTY | M2_LORD,
- X C(BRIGHT|GREEN) },
- X { "Yeenoghu", S_DEMON, 56, 18, -5, 80, -15,
- X (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
- X { { AT_WEAP, AD_PHYS, 3, 6 }, { AT_WEAP, AD_CONF, 2, 8 },
- X { AT_WEAP, AD_PLYS, 1, 6 }, { AT_MAGC, AD_MAGM, 2, 6 }, NO_ATTK },
- X 50, 500, 0, MS_ORC, MZ_LARGE,
- X M1_NOPOLY | M1_FLY | M1_SEE_INVIS | M1_POIS | M1_FIRE_RES |
- X M1_COLLECT,
- X M2_DEMON | M2_STALK | M2_HOSTILE | M2_PNAME | M2_NASTY | M2_LORD,
- X C(HI_LORD) },
- X { "Orcus", S_DEMON, 66, 9, -6, 85, -20,
- X (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
- X { { AT_MAGC, AD_SPEL, 8, 6 }, { AT_WEAP, AD_PHYS, 3, 6 },
- X { AT_CLAW, AD_PHYS, 3, 4 }, { AT_CLAW, AD_PHYS, 3, 4 },
- X { AT_STNG, AD_DRST, 2, 4 }, }, 50, 500, 0, MS_ORC, MZ_HUGE,
- X M1_NOPOLY | M1_FLY | M1_SEE_INVIS | M1_POIS | M1_FIRE_RES |
- X M1_COLLECT,
- X M2_DEMON | M2_STALK | M2_HOSTILE | M2_PNAME | M2_NASTY | M2_PRINCE,
- X C(HI_LORD) },
- X { "Geryon", S_DEMON, 72, 3, -3, 75, 15,
- X (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
- X { { AT_CLAW, AD_PHYS, 3, 6 }, { AT_CLAW, AD_PHYS, 3, 6 },
- X { AT_STNG, AD_DRST, 2, 4 }, NO_ATTK, NO_ATTK },
- X 50, 500, 0, MS_BRIBE, MZ_HUGE,
- X M1_NOPOLY | M1_FLY | M1_SEE_INVIS | M1_POIS | M1_FIRE_RES |
- X M1_SLITHY,
- X M2_DEMON | M2_STALK | M2_HOSTILE | M2_PNAME | M2_NASTY | M2_PRINCE, C(HI_LORD) },
- X { "Dispater", S_DEMON, 78, 15, -2, 80, 15,
- X (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
- X { { AT_WEAP, AD_PHYS, 4, 6 }, { AT_MAGC, AD_SPEL, 6, 6 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 50, 500, 0, MS_BRIBE, MZ_HUMAN,
- X M1_NOPOLY | M1_FLY | M1_SEE_INVIS | M1_POIS | M1_FIRE_RES |
- X M1_HUMANOID | M1_COLLECT,
- X M2_DEMON | M2_STALK | M2_HOSTILE | M2_PNAME | M2_NASTY | M2_PRINCE, C(HI_LORD) },
- X { "Baalzebub", S_DEMON, 89, 9, -5, 85, 20,
- X (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
- X { { AT_BITE, AD_DRST, 2, 6 }, { AT_GAZE, AD_STUN, 2, 6 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 50, 500, 0, MS_BRIBE, MZ_LARGE,
- X M1_NOPOLY | M1_FLY | M1_SEE_INVIS | M1_POIS | M1_FIRE_RES,
- X M2_DEMON | M2_STALK | M2_HOSTILE | M2_PNAME | M2_NASTY | M2_PRINCE,
- X C(HI_LORD) },
- X { "Asmodeus", S_DEMON, 105, 12, -7, 90, 20,
- X (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
- X { { AT_CLAW, AD_PHYS, 4, 4 }, { AT_MAGC, AD_COLD, 6, 6 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 50, 500, 0, MS_BRIBE, MZ_HUGE,
- X M1_NOPOLY | M1_FLY | M1_SEE_INVIS | M1_HUMANOID | M1_POIS |
- X M1_FIRE_RES | M1_COLD_RES,
- X M2_DEMON | M2_STALK | M2_HOSTILE | M2_PNAME | M2_STRONG | M2_NASTY |
- X M2_PRINCE, C(HI_LORD) },
- X { "Demogorgon", S_DEMON, 106, 15, -8, 95, -20,
- X (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
- X { { AT_MAGC, AD_SPEL, 8, 6 }, { AT_STNG, AD_DRLI, 1, 4 },
- X { AT_CLAW, AD_DISE, 1, 6 }, { AT_CLAW, AD_DISE, 1, 6 },
- X NO_ATTK }, 50, 500, 0, MS_GROWL, MZ_HUGE,
- X M1_NOPOLY | M1_FLY | M1_SEE_INVIS | M1_NOHANDS | M1_POIS |
- X M1_FIRE_RES,
- X M2_DEMON | M2_STALK | M2_HOSTILE | M2_PNAME | M2_NASTY | M2_PRINCE,
- X C(HI_LORD) },
- X#endif
- X#ifdef MAIL
- X { "mail daemon", S_DEMON, 56, 24, 10, 127, 0, (G_NOGEN | G_NOCORPSE),
- X { NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, 30, 300, 0,
- X MS_SILENT, MZ_HUMAN, M1_NOPOLY | M1_FLY | M1_SWIM | M1_SEE_INVIS |
- X M1_HUMANOID | M1_POIS | M1_FIRE_RES | M1_COLD_RES | M1_SLEE_RES,
- X M2_STALK | M2_PEACEFUL, C(BRIGHT|BLUE) },
- X/* Neither rain nor sleet nor gloom of night shall stay this courier... */
- X#endif
- X { "djinni", S_DEMON, 7, 12, 4, 30, 0, (G_NOGEN | G_NOCORPSE),
- X { { AT_WEAP, AD_PHYS, 2, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 40, 400, 0, MS_DJINNI, MZ_HUMAN,
- X M1_NOPOLY | M1_HUMANOID | M1_FLY | M1_POIS | M1_COLLECT, M2_STALK,
- X C(YELLOW) },
- X/* sea monsters */
- X { "giant eel", S_EEL, 5, 9, -1, 0, 0, (G_GENO | G_NOGEN),
- X { { AT_BITE, AD_PHYS, 3, 6 }, { AT_TUCH, AD_WRAP, 0, 0 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 10, 250, 0, MS_SILENT, MZ_HUGE,
- X M1_SWIM | M1_ANIMAL | M1_SLITHY | M1_NOLIMBS | M1_NOPOLY,
- X M2_HOSTILE | M2_CARNIVORE | M2_EGGS, C(CYAN) },
- X { "electric eel", S_EEL, 7, 10, -3, 0, 0, (G_GENO | G_NOGEN),
- X { { AT_BITE, AD_ELEC, 4, 6 }, { AT_TUCH, AD_WRAP, 0, 0 },
- X NO_ATTK, NO_ATTK, NO_ATTK }, 10, 250, 0, MS_SILENT, MZ_HUGE,
- X M1_SWIM | M1_ANIMAL | M1_SLITHY | M1_NOLIMBS | M1_NOPOLY |
- X M1_ELEC_RES, M2_HOSTILE | M2_CARNIVORE | M2_EGGS, C(BLUE) },
- X { "kraken", S_EEL, 20, 3, 6, 0, -3, (G_GENO | G_NOGEN),
- X { { AT_CLAW, AD_PHYS, 2, 4 }, { AT_CLAW, AD_PHYS, 2, 4 },
- X { AT_HUGS, AD_WRAP, 2, 6 }, { AT_BITE, AD_PHYS, 5, 4 }, NO_ATTK },
- X 100, 1000, 0, MS_SILENT, MZ_HUGE,
- X M1_SWIM | M1_ANIMAL | M1_NOHANDS | M1_NOPOLY,
- X M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(RED) },
- X/* lizards */
- X { "newt", S_LIZARD, 0, 6, 8, 0, 0, (G_GENO | 5),
- X { { AT_BITE, AD_PHYS, 1, 2 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 2, 20, 0, MS_SILENT, MZ_TINY, M1_SWIM | M1_ANIMAL | M1_NOHANDS,
- X M2_HOSTILE | M2_CARNIVORE, C(YELLOW) },
- X { "gecko", S_LIZARD, 1, 6, 8, 0, 0, (G_GENO | 5),
- X { { AT_BITE, AD_PHYS, 1, 3 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 2, 20, 0, MS_SQEEK, MZ_TINY, M1_ANIMAL | M1_NOHANDS,
- X M2_HOSTILE | M2_CARNIVORE, C(GREEN) },
- X { "iguana", S_LIZARD, 2, 6, 7, 0, 0, (G_GENO | 5),
- X { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 3, 30, 0, MS_SILENT, MZ_TINY, M1_ANIMAL | M1_NOHANDS,
- X M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
- X { "baby crocodile", S_LIZARD, 3, 6, 7, 0, 0, G_GENO,
- X { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 20, 200, 0, MS_SILENT, MZ_MEDIUM, M1_ANIMAL | M1_NOHANDS | M1_SWIM,
- X M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
- X { "lizard", S_LIZARD, 5, 6, 6, 10, 0, (G_GENO | 5),
- X { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 1, 40, 0, MS_SILENT, MZ_TINY, M1_ANIMAL | M1_NOHANDS | M1_STON_RES,
- X M2_HOSTILE | M2_CARNIVORE, C(GREEN) },
- X { "chameleon", S_LIZARD, 6, 5, 6, 10, 0, (G_GENO | 2),
- X { { AT_BITE, AD_PHYS, 4, 2 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 10, 100, 0, MS_SILENT, MZ_TINY, M1_ANIMAL | M1_NOHANDS | M1_NOPOLY,
- X M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
- X { "crocodile", S_LIZARD, 6, 9, 5, 0, 0, (G_GENO | 1),
- X { { AT_BITE, AD_PHYS, 4, 2 }, { AT_CLAW, AD_PHYS, 1, 12 }, NO_ATTK,
- X NO_ATTK, NO_ATTK }, 45, 400, 0, MS_SILENT, MZ_LARGE,
- X M1_ANIMAL | M1_THICK_HIDE | M1_NOHANDS | M1_SWIM,
- X M2_STRONG | M2_HOSTILE | M2_CARNIVORE | M2_EGGS, C(BROWN) },
- X
- X/* character classes */
- X { "archeologist", S_HUMAN, 1, 10, 10, 1, 3, G_NOGEN,
- X { {AT_WEAP, AD_PHYS, 1, 6}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 45, 400, 0, MS_HUMANOID, MZ_HUMAN,
- X M1_NOPOLY | M1_HUMANOID | M1_COLLECT | M1_TUNNEL | M1_NEEDPICK,
- X M2_HUMAN | M2_STRONG, C(HI_DOMESTIC) },
- X { "barbarian", S_HUMAN, 1, 10, 10, 1, -3, G_NOGEN,
- X { {AT_WEAP, AD_PHYS, 1, 6}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 45, 400, 0, MS_HUMANOID, MZ_HUMAN,
- X M1_NOPOLY | M1_HUMANOID | M1_COLLECT | M1_POIS_RES,
- X M2_HUMAN | M2_STRONG, C(HI_DOMESTIC) },
- X { "caveman", S_HUMAN, 1, 10, 10, 0, 1, G_NOGEN,
- X { {AT_WEAP, AD_PHYS, 2, 4}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 45, 400, 0, MS_HUMANOID, MZ_HUMAN,
- X M1_NOPOLY | M1_HUMANOID | M1_COLLECT,
- X M2_HUMAN | M2_STRONG | M2_CARNIVORE, C(RED) },
- X { "cavewoman", S_HUMAN, 1, 10, 10, 0, 1, G_NOGEN,
- X { {AT_WEAP, AD_PHYS, 2, 4}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 45, 400, 0, MS_HUMANOID, MZ_HUMAN,
- X M1_NOPOLY | M1_HUMANOID | M1_COLLECT,
- X M2_HUMAN | M2_STRONG | M2_CARNIVORE | M2_FEM, C(HI_DOMESTIC) },
- X /* Note: players who are elves still get normal carrying capacity,
- X * even though this is strictly speaking inconsistent.
- X */
- X { "elf", S_HUMAN, 1, 12, 10, 2, 3, G_NOGEN,
- X { {AT_WEAP, AD_PHYS, 1, 8}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 35, 350, 0, MS_HUMANOID, MZ_HUMAN,
- X M1_NOPOLY | M1_HUMANOID | M1_COLLECT | M1_SLEE_RES | M1_SEE_INVIS,
- X M2_ELF | M2_STRONG, C(HI_DOMESTIC) },
- X { "healer", S_HUMAN, 1, 10, 10, 1, 3, G_NOGEN,
- X { {AT_WEAP, AD_PHYS, 1, 6}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 45, 400, 0, MS_HUMANOID, MZ_HUMAN,
- X M1_NOPOLY | M1_HUMANOID | M1_COLLECT | M1_POIS_RES,
- X M2_HUMAN | M2_STRONG, C(HI_DOMESTIC) },
- X { "knight", S_HUMAN, 1, 10, 10, 1, 3, G_NOGEN,
- X { {AT_WEAP, AD_PHYS, 1, 6}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 45, 400, 0, MS_HUMANOID, MZ_HUMAN,
- X M1_NOPOLY | M1_HUMANOID | M1_COLLECT,
- X M2_HUMAN | M2_STRONG, C(HI_DOMESTIC) },
- X { "priest", S_HUMAN, 1, 10, 10, 2, 0, G_NOGEN,
- X { {AT_WEAP, AD_PHYS, 1, 6}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 45, 400, 0, MS_HUMANOID, MZ_HUMAN,
- X M1_NOPOLY | M1_HUMANOID | M1_COLLECT,
- X M2_HUMAN | M2_STRONG, C(HI_DOMESTIC) },
- X { "priestess", S_HUMAN, 1, 10, 10, 2, 0, G_NOGEN,
- X { {AT_WEAP, AD_PHYS, 1, 6}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 45, 400, 0, MS_HUMANOID, MZ_HUMAN,
- X M1_NOPOLY | M1_HUMANOID | M1_COLLECT,
- X M2_HUMAN | M2_STRONG | M2_FEM, C(HI_DOMESTIC) },
- X { "rogue", S_HUMAN, 1, 10, 10, 1, -3, G_NOGEN,
- X { {AT_WEAP, AD_PHYS, 1, 6}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 45, 400, 0, MS_HUMANOID, MZ_HUMAN,
- X M1_NOPOLY | M1_HUMANOID | M1_COLLECT | M1_GREEDY,
- X M2_HUMAN | M2_STRONG, C(HI_DOMESTIC) },
- X { "samurai", S_HUMAN, 1, 10, 10, 1, 3, G_NOGEN,
- X { {AT_WEAP, AD_PHYS, 1, 8}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 45, 400, 0, MS_HUMANOID, MZ_HUMAN,
- X M1_NOPOLY | M1_HUMANOID | M1_COLLECT,
- X M2_HUMAN | M2_STRONG, C(HI_DOMESTIC) },
- X { "tourist", S_HUMAN, 1, 10, 10, 1, 0, G_NOGEN,
- X { {AT_WEAP, AD_PHYS, 1, 6}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 45, 400, 0, MS_HUMANOID, MZ_HUMAN,
- X M1_NOPOLY | M1_HUMANOID | M1_COLLECT,
- X M2_HUMAN | M2_STRONG, C(HI_DOMESTIC) },
- X { "valkyrie", S_HUMAN, 1, 10, 10, 1, -1, G_NOGEN,
- X { {AT_WEAP, AD_PHYS, 1, 8}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 45, 400, 0, MS_HUMANOID, MZ_HUMAN,
- X M1_NOPOLY | M1_HUMANOID | M1_COLLECT | M1_COLD_RES,
- X M2_HUMAN | M2_STRONG | M2_FEM, C(HI_DOMESTIC) },
- X { "wizard", S_HUMAN, 1, 10, 10, 3, 0, G_NOGEN,
- X { {AT_WEAP, AD_PHYS, 1, 6}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 45, 400, 0, MS_HUMANOID, MZ_HUMAN,
- X M1_NOPOLY | M1_HUMANOID | M1_COLLECT | M1_MAGIC,
- X M2_HUMAN | M2_STRONG, C(HI_DOMESTIC) },
- X
- X/* ARRAY TERMINATOR */
- X { "", 0, 0, 0, 0, 0, 0, 0,
- X { NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 0, 0, 0, 0, 0, 0, 0, C(0) }
- X};
- X#endif /* !SPLITMON_1 */
- X#endif /* !MAKEDEFS_C */
- END_OF_FILE
- if test 46080 -ne `wc -c <'src/monst.c2'`; then
- echo shar: \"'src/monst.c2'\" unpacked with wrong size!
- fi
- # end of 'src/monst.c2'
- echo shar: End of archive 23 \(of 30\).
- cp /dev/null ark23isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 30 archives.
- rm -f ark[1-9]isdone ark[1-9][0-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
-